package com.doublethread.easymart.modules.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.doublethread.easymart.common.result.PageResult;
import com.doublethread.easymart.modules.user.dto.*;
import com.doublethread.easymart.modules.user.entity.User;
import com.doublethread.easymart.modules.user.vo.LoginVO;
import com.doublethread.easymart.modules.user.vo.UserStatisticsVO;
import com.doublethread.easymart.modules.user.vo.UserVO;

/**
 * 用户服务接口
 */
public interface UserService extends IService<User> {

    /**
     * 用户登录
     */
    LoginVO login(LoginDTO loginDTO);

    /**
     * 用户注册
     */
    void register(RegisterDTO registerDTO);

    /**
     * 分页查询用户列表
     */
    PageResult<UserVO> getUserList(UserQueryDTO queryDTO);

    /**
     * 获取用户详情
     */
    UserVO getUserDetail(Long userId);

    /**
     * 更新用户状态
     */
    void updateUserStatus(Long userId, UserUpdateStatusDTO statusDTO);

    /**
     * 删除用户
     */
    void deleteUser(Long userId);

    /**
     * 获取用户统计信息
     */
    UserStatisticsVO getUserStatistics();

    /**
     * 根据用户ID获取用户信息
     */
    UserVO getUserById(Long userId);

    /**
     * 获取个人信息
     */
    UserVO getUserProfile(Long userId);

    /**
     * 更新用户信息
     */
    void updateUser(Long userId, UserUpdateDTO updateDTO);

    /**
     * 修改密码
     */
    void updatePassword(Long userId, UserPasswordUpdateDTO passwordUpdateDTO);

    /**
     * 上传用户头像
     */
    String uploadAvatar(Long userId, String avatarBase64);

}
